home *** CD-ROM | disk | FTP | other *** search
Wrap
GW-BASIC | 1985-03-30 | 16.5 KB | 443 lines
10 '1/20/84 12:30 PM 20 KEY OFF:CLEAR ,36000:WIDTH 80:SCREEN 0,0,0:ON ERROR GOTO 410 30 KEY(10) ON:ON KEY(10) GOSUB 35 33 GOTO 40 35 RUN'MENU.BAT 40 KEY(10) ON:LA$="KEY":FOR I=1 TO 37:LA$=LA$+"THEN":NEXT 50 LA$=LA$+"FNFN":FOR I=1 TO 37:LA$=LA$+"THEN":NEXT:LA$=LA$+"CLOSE" 60 LB$="SCREEN":FOR I=1 TO 37:LB$=LB$+"THEN":NEXT 70 LB$=LB$+"STEPSTEP":FOR I=1 TO 37:LB$=LB$+"THEN":NEXT:LB$=LB$+"LOAD" 80 CLS:DEF SEG:POKE 106,0 90 COLOR 15,0:FOR I=1 TO 3 STEP 2:FOR J=20 TO 62:LOCATE I,J,0:PRINT "SOUND":NEXT:NEXT 110 LOCATE 2,19:PRINT"CALL"SPC(43)"CALL" 120 COLOR 0,7:LOCATE 2,29:PRINT" B O B T O L S O N ":COLOR 3,0 170 LOCATE 9,27:COLOR 0,7:PRINT" A ";:COLOR 3,0:PRINT" Present / Future Value" 180 LOCATE 12,27:COLOR 0,7:PRINT" B ";:COLOR 3,0:PRINT" Amortization Analysis" 190 LOCATE 15,27:COLOR 0,7:PRINT" C ";:COLOR 3,0:PRINT" EXIT to Main Menu " 230 LOCATE 19,13:COLOR 15,0:PRINT"*****";:COLOR 3:PRINT" Strike Key Corresponding To Function Desired ";:COLOR 15:PRINT"*****":COLOR 3 290 POKE 106,0 300 RS$=INKEY$:IF RS$="" THEN 300 330 IF RS$="B" OR RS$="b" THEN 450 370 IF RS$="A" OR RS$="a" THEN 3480 390 IF RS$="C" OR RS$="c" THEN RUN"MENU.BAT 400 GOTO 300 410 IF ERR=53 THEN RUN"menu 420 IF ERR=6 THEN RESUME NEXT 430 ON ERROR GOTO 0 440 RETURN 450 GOTO 500 460 POKE 106,0 470 IF INKEY$<>"" THEN 460 480 RS$=INKEY$:IF RS$="" THEN 480 490 RETURN 500 AMNT#=0:IST#=0:TNT#=0:TMT#=0:MD=0:PYMT#=0:NB=0:YS=0:PF#=0 510 GOSUB 640 520 GOSUB 700 530 GOSUB 460 540 IF (RS$<"a" OR RS$>"e") AND (RS$<"A" OR RS$>"E") THEN 530 550 IF RS$="A" OR RS$="a" THEN HD$="Calculate Interest Rate ":GOTO 600 560 IF RS$="B" OR RS$="b" THEN HD$="Calculate Payment Amount":GOTO 610 570 IF RS$="C" OR RS$="c" THEN HD$=" Calculate Loan Amount ":GOTO 620 580 IF RS$="D" OR RS$="d" THEN HD$=" Calculate Loan Payoff ":GOTO 630 590 IF RS$="E" OR RS$="e" THEN 40 600 GOSUB 640:GOSUB 790:GOSUB 930:GOSUB 950:GOSUB 970:GOSUB 990:GOSUB 1150:GOSUB 1050:GOSUB 780:GOSUB 460:GOTO 500 610 GOSUB 640:GOSUB 790:GOSUB 930:GOSUB 970:GOSUB 990:GOSUB 1010:GOSUB 1300:GOSUB 1050:GOSUB 780:GOSUB 460:GOTO 500 620 GOSUB 640:GOSUB 790:GOSUB 950:GOSUB 970:GOSUB 990:GOSUB 1010:GOSUB 1380:GOSUB 1050:GOSUB 780:GOSUB 460:GOTO 500 630 GOSUB 640:GOSUB 790:GOSUB 930:GOSUB 950:GOSUB 990:GOSUB 1010:GOSUB 1030:GOSUB 1460:GOSUB 1050:GOSUB 780:GOSUB 460:GOTO 500 640 CLS:PRINT:COLOR 0,7:PRINT" F10 ";:COLOR 7,0:PRINT" To Menu":COLOR 11,0 650 FOR I=1 TO 3 STEP 2:FOR J=20 TO 62:LOCATE I,J,0:PRINT"SOUND":NEXT:NEXT 660 LOCATE 1,19:PRINT"VARPTR":LOCATE 1,63:PRINT"COLOR":LOCATE 3,63:PRINT"'":LOCATE 3,19:PRINT"CLS" 670 LOCATE 2,19:PRINT"CALL"SPC(43)"CALL" 680 COLOR 0,7 690 LOCATE 2,29:PRINT" A M O R T I Z A T I O N ":COLOR 7,0:RETURN 700 COLOR 11,0:LOCATE 5,30:PRINT"Functions Available" 710 PRINT;TAB(30);"--------------------" 720 LOCATE 8,26:COLOR 0,7:PRINT" A ";:COLOR 7,0:PRINT" Calculate interest rate" 730 LOCATE 10,26:COLOR 0,7:PRINT" B ";:COLOR 7,0:PRINT" Calculate payment amount" 740 LOCATE 12,26:COLOR 0,7:PRINT" C ";:COLOR 7,0:PRINT" Calculate loan amount" 750 LOCATE 14,26:COLOR 0,7:PRINT" D ";:COLOR 7,0:PRINT" Calculate loan payoff" 760 LOCATE 16,26:COLOR 0,7:PRINT" E ";:COLOR 7,0:PRINT" Return to main menu" 770 COLOR 11,0:LOCATE 23,12,0:PRINT"***** Strike Key Corresponding To Function Desired *****":COLOR 7,0:RETURN 780 LOCATE 25,22,0:PRINT"***** Strike Key To Return To Menu *****";:COLOR 7,0:RETURN 790 COLOR 11,0:LOCATE 4,30:PRINT HD$:COLOR 7,0 800 LOCATE 5,11:PRINT"KEY";:FOR I=1 TO 58:PRINT"THEN";:NEXT:PRINT"CLOSE" 810 FOR J=6 TO 23:LOCATE J,70:PRINT"OPEN":NEXT:LOCATE J,70:PRINT"LOAD"; 820 FOR J=69 TO 12 STEP -1:LOCATE 24,J:PRINT"THEN";:NEXT:LOCATE 24,11:PRINT"SCREEN"; 830 FOR J=23 TO 6 STEP -1:LOCATE J,11:PRINT"OPEN":NEXT 840 LOCATE 6,16:PRINT"Loan Amount" 850 LOCATE 8,16:PRINT"Payment Amount" 860 LOCATE 10,16:PRINT"Number Of Years" 870 LOCATE 12,16:PRINT"No. Payments Per Year" 880 LOCATE 14,16:PRINT"Interest Rate" 890 LOCATE 16,16:PRINT"No. Payments made" 900 LOCATE 18,16:PRINT"Payoff Amount" 910 LOCATE 20,16:PRINT"Total Interest Paid" 920 LOCATE 22,16:PRINT"Total Amount To Pay":RETURN 930 LOCATE 6,16,1:COLOR 11,0:PRINT"Loan Amount "; 940 GOSUB 1550:AMNT#=VAL(ZA):IF AMNT#=0 THEN 930 ELSE RETURN 950 LOCATE 8,16,1:COLOR 11,0:PRINT"Payment Amount "; 960 GOSUB 1550:PYMT#=VAL(ZA):IF PYMT#=0 THEN 950 ELSE RETURN 970 LOCATE 10,16,1:COLOR 11,0:PRINT"Number Of Years "; 980 GOSUB 6350:YS=VAL(ZA):IF YS=0 THEN 970 ELSE RETURN 990 LOCATE 12,16,1:COLOR 11,0:PRINT"No. Payments Per Year "; 1000 GOSUB 6350:NB=VAL(ZA):IF NB=0 THEN 990 ELSE RETURN 1010 LOCATE 14,16,1:COLOR 11,0:PRINT"Interest Rate "; 1020 DEC=3:GOSUB 1550:IST#=VAL(ZA):IF IST#=0 THEN 1010 ELSE RETURN 1030 LOCATE 16,16,1:COLOR 11,0:PRINT"No. Payments Made "; 1040 GOSUB 6350:MD=VAL(ZA):RETURN 1050 LOCATE 6,16:PRINT USING"Loan Amount $$################,.##";AMNT# 1060 LOCATE 8,16:PRINT USING"Payment Amount $$################,.##";PYMT# 1070 LOCATE 10,16:PRINT USING"Number Of Years ################,.#";YS 1080 LOCATE 12,16:PRINT USING"No. Payments Per Year #############,###";NB 1090 LOCATE 14,16:PRINT USING"Interest Rate ################,.##%";IST#; 1100 IF SW THEN PRINT" +":SW=0 1110 LOCATE 16,16:PRINT USING"No. Payments made ############,####";MD 1120 LOCATE 18,16:PRINT USING"Payoff Amount $$#################,.##";PF# 1130 LOCATE 20,16:PRINT USING"Total Interest Paid $$#################,.##";TNT# 1140 LOCATE 22,16:PRINT USING"Total Amount To Pay $$#################,.##";TMT#:RETURN 1150 X1#=0:X2#=1:IST#=0.5 1160 I#=(AMNT#*IST#)/(PYMT#*NB)-1+(1/((1+(IST#/NB))^(YS*NB))) 1170 IF ABS(ABS(I#)-0)<0 GOTO 1250 1180 IF I#>0 THEN 1230 1190 IF HH#=I# THEN IST#=1:SW=1:GOTO 1250 ELSE HH#=I# 1200 X1#=IST# 1210 IST#=(X1#+X2#)/2 1220 GOTO 1160 1230 X2#=IST# 1240 GOTO 1210 1250 TMT#=YS*PYMT#*NB 1260 TNT#=TMT#-AMNT# 1270 PF#=AMNT# 1280 IST#=(INT(IST#*10000+0.5))/100 1290 RETURN 1300 IST#=IST#/100 1310 PYMT#=((AMNT#*IST#)/NB)/(1-(1/(((1+(IST#/NB))^(YS*NB))))) 1320 PYMT#=(INT(PYMT#*100+0.5))/100 1330 TMT#=YS*PYMT#*NB 1340 IST#=IST#*100 1350 TNT#=TMT#-AMNT# 1360 PF#=AMNT# 1370 RETURN 1380 IST#=IST#/100 1390 AMNT#=PYMT#*((1-(1/((1+(IST#/NB))^(YS*NB))))/(IST#/NB)) 1400 AMNT#=(INT(AMNT#*100+0.5))/100 1410 TMT#=YS*PYMT#*NB 1420 PF#=AMNT# 1430 TNT#=TMT#-AMNT# 1440 IST#=IST#*100 1450 RETURN 1460 IST#=IST#/100 1470 PF#=AMNT#*((1+(IST#/NB))^MD)-PYMT#*((1-((1+(IST#/NB))^MD))/(-(IST#/NB))) 1480 PF#=(INT(PF#*100+0.5))/100 1490 IST#=IST#*100 1500 TMT#=PF# 1510 TNT#=PF#-(AMNT#-PYMT#*MD) 1520 TNT#=(INT(TNT#*100+0.5))/100 1530 RETURN 1540 COLOR 7,0:GOTO 40 1550 GOTO 6040 1560 GOTO 1570 1570 GOSUB 1580:GOSUB 1690:GOSUB 1680:GOSUB 460:GOTO 1570 1580 CLS:PRINT:COLOR 0,7:PRINT" F10 ";:COLOR 7,0:PRINT" To Menu":COLOR 11,0 1590 FOR I=1 TO 3 STEP 2:FOR J=20 TO 62:LOCATE I,J,0:PRINT"SOUND":NEXT:NEXT 3480 GOTO 3490 3490 AMNT#=0:IST#=0:TNT#=0:TMT#=0:MD=0:PYMT#=0:NB=0:YS=0:PRS#=0 3500 GOSUB 3630 3510 GOSUB 3680 3520 GOSUB 460 3530 IF (RS$<"a" OR RS$>"e") AND (RS$<"A" OR RS$>"E") THEN 3520 3540 IF RS$="A" OR RS$="a" THEN HD$="Calculate Present Value ":GOTO 3590 3550 IF RS$="B" OR RS$="b" THEN HD$="Calculate Future Value ":GOTO 3600 3560 IF RS$="C" OR RS$="c" THEN HD$=" Calculate Interest Rate":GOTO 3610 3570 IF RS$="D" OR RS$="d" THEN HD$="Calculate No. Of Years ":GOTO 3620 3580 IF RS$="E" OR RS$="e" THEN 40 3590 GOSUB 3630:GOSUB 3770:GOSUB 3890:GOSUB 3930:GOSUB 3950:GOSUB 4040:GOSUB 3990:GOSUB 3760:GOSUB 460:GOTO 3490 3600 GOSUB 3630:GOSUB 3770:GOSUB 3870:GOSUB 3930:GOSUB 3950:GOSUB 4070:GOSUB 3990:GOSUB 3760:GOSUB 460:GOTO 3490 3610 GOSUB 3630:GOSUB 3770:GOSUB 3870:GOSUB 3890:GOSUB 3930:GOSUB 4100:GOSUB 3990:GOSUB 3760:GOSUB 460:GOTO 3490 3620 GOSUB 3630:GOSUB 3770:GOSUB 3870:GOSUB 3890:GOSUB 3950:GOSUB 4490:GOSUB 3990:GOSUB 3760:GOSUB 460:GOTO 3490 3630 CLS 3640 FOR I=1 TO 3 STEP 2:FOR J=20 TO 62:LOCATE I,J,0:PRINT "SOUND":NEXT:NEXT 3650 LOCATE 1,19:PRINT"VARPTR":LOCATE 1,63:PRINT"COLOR":LOCATE 3,63:PRINT"'":LOCATE 3,19:PRINT "CLS" 3660 LOCATE 2,19:PRINT"CALL"SPC(43)"CALL":COLOR 0,7 3670 LOCATE 2,21:PRINT" P R E S E N T / F U T U R E V A L U E ":COLOR 7,0:RETURN 3680 COLOR 11,0:LOCATE 5,30,0:PRINT"Functions Available" 3690 PRINT TAB(30)"--------------------" 3700 LOCATE 8,26:COLOR 0,7:PRINT" A ";:COLOR 7,0:PRINT" Calculate Present Value" 3710 LOCATE 10,26:COLOR 0,7:PRINT" B ";:COLOR 7,0:PRINT" Calculate Future Value" 3720 LOCATE 12,26:COLOR 0,7:PRINT" C ";:COLOR 7,0:PRINT" Calculate Interest Rate 3730 LOCATE 14,26:COLOR 0,7:PRINT" D ";:COLOR 7,0:PRINT" Calculate Number Of Years" 3740 LOCATE 16,26:COLOR 0,7:PRINT" E ";:COLOR 7,0:PRINT" Return to main menu" 3750 COLOR 11,0:LOCATE 23,12,0:PRINT"***** Strike Key Corresponding To Function Desired *****":COLOR 7,0:RETURN 3760 LOCATE 25,22,0:PRINT"***** Strike Key To Return To Menu *****";:COLOR 7,0:RETURN 3770 COLOR 11,0:LOCATE 4,30:PRINT HD$:COLOR 7,0 3780 LOCATE 5,11:PRINT"KEY";:FOR I=1 TO 58:PRINT"THEN";:NEXT:PRINT "CLOSE" 3790 FOR J=6 TO 23:LOCATE J,70:PRINT"OPEN":NEXT:LOCATE ,70:PRINT"LOAD"; 3800 FOR J=69 TO 12 STEP -1:LOCATE 24,J:PRINT"THEN";:NEXT:LOCATE 24,11:PRINT"SCREEN"; 3810 FOR J=23 TO 6 STEP -1:LOCATE J,11:PRINT"OPEN":NEXT 3820 LOCATE 8,22:PRINT"Present Value" 3830 LOCATE 11,22:PRINT"Future Value" 3840 LOCATE 14,22:PRINT"Number Of Years" 3850 LOCATE 17,22:PRINT"Interest Rate" 3860 LOCATE 20,22:PRINT"Return on Investment":RETURN 3870 LOCATE 8,22,1:COLOR 11,0:PRINT"Present Value "; 3880 GOSUB 4760:PRS#=VAL(ZA):IF PRS#=0 THEN 3870 ELSE RETURN 3890 LOCATE 11,22,1:COLOR 11,0:PRINT"Future Value "; 3900 GOSUB 4760:FT#=VAL(ZA):IF FT#=0 THEN 3890 3910 IF FT#<=PRS# THEN LOCATE 23,13:PRINT"Future Value Must Be Greater Than Present Value - Retry":FOR I=1 TO 2500:NEXT:LOCATE 23,13:PRINT SPC(55):LOCATE 11,46:PRINT SPC(20):GOTO 3890 3920 RETURN 3930 LOCATE 14,22,1:COLOR 11,0:PRINT"Number Of Years "; 3940 DEC=2:GOSUB 4760:YS=VAL(ZA):IF YS=0 THEN 3930 ELSE RETURN 3950 LOCATE 17,22,1:COLOR 11,0:PRINT"Interest Rate "; 3960 DEC=3:GOSUB 4760:IST#=VAL(ZA):IF IST#=0 THEN 3950 ELSE RETURN 3970 LOCATE 20,22,1:COLOR 11,0:PRINT"Return On Investment "; 3980 GOSUB 4760:RETRN#=VAL(ZA):IF RETRN#=0 THEN 3970 ELSE RETURN 3990 LOCATE 8,22:PRINT USING"Present Value $$############,.##";PRS# 4000 LOCATE 11,22:PRINT USING"Future Value $$############,.##";FT# 4010 LOCATE 14,22:PRINT USING"Number Of Years ###############.##";YS 4020 LOCATE 17,22:PRINT USING"Interest Rate ##############.##%";IST# 4030 LOCATE 20,22:PRINT USING"Return On Investment $$###########,.##";RETRN#:RETURN 4040 PRS#=INT((FT#/((1+IST#/100)^YS)+0.005)*100)/100 4050 RETRN#=FT#-PRS# 4060 RETURN 4070 FT#=INT((PRS#*((1+IST#/100)^YS)+0.005)*100)/100 4080 RETRN#=FT#-PRS# 4090 RETURN 4100 IST#=5.1:BT#=INT((FT#-FT#*9.9999E-05)*100):TP#=INT((FT#+FT#*9.9999E-05)*100) 4110 GS#=INT((PRS#*((1+IST#/100)^YS)+0.005)*100)/100 4120 GS#=INT(GS#*100) 4130 IF GS#>BT# AND GS#<TP# THEN 4470 4140 IF GS#>TP# THEN IST#=IST#-5:GOTO 4170 4150 IST#=IST#+5 4160 GOTO 4110 4170 GS#=INT((PRS#*((1+IST#/100)^YS)+0.005)*100)/100 4180 GS#=INT(GS#*100) 4190 IF GS#>BT# AND GS#<TP# THEN 4470 4200 IF GS#>TP# THEN IST#=IST#-1:GOTO 4230 4210 IST#=IST#+1 4220 GOTO 4170 4230 GS#=INT((PRS#*((1+IST#/100)^YS)+0.005)*100)/100 4240 GS#=INT(GS#*100) 4250 IF GS#>BT# AND GS#<TP# THEN 4470 4260 IF GS#>TP# THEN IST#=IST#-0.1:GOTO 4290 4270 IST#=IST#+0.1 4280 GOTO 4230 4290 GS#=INT((PRS#*((1+IST#/100)^YS)+0.005)*100)/100 4300 GS#=INT(GS#*100) 4310 IF GS#>BT# AND GS#<TP# THEN 4470 4320 IF GS#>TP# THEN IST#=IST#-0.01:GOTO 4350 4330 IST#=IST#+0.01 4340 GOTO 4290 4350 GS#=INT((PRS#*((1+IST#/100)^YS)+0.005)*100)/100 4360 GS#=INT(GS#*100) 4370 IF GS#>BT# AND GS#<TP# THEN 4470 4380 IF GS#>TP# THEN IST#=IST#-0.000999999:GOTO 4410 4390 IST#=IST#+0.000999999 4400 GOTO 4350 4410 GS#=INT((PRS#*((1+IST#/100)^YS)+0.005)*100)/100 4420 GS#=INT(GS#*100) 4430 IF GS#>BT# AND GS#<TP# THEN 4470 4440 IF GS#>TP# THEN 4470 4450 IST#=IST#+9.9999E-05 4460 GOTO 4410 4470 RETRN#=FT#-PRS# 4480 RETURN 4490 YS=1.1 4500 BT#=INT((FT#-FT#*0.005)*100) 4510 TP#=INT((FT#+FT#*0.005)*100) 4520 GS#=INT((PRS#*((1+IST#/100)^YS)+0.005)*100)/100 4530 GS#=INT(GS#*100) 4540 IF GS#>TP# THEN YS=YS-10:GOTO 4570 4550 YS=YS+10 4560 GOTO 4520 4570 GS#=INT((PRS#*((1+IST#/100)^YS)+0.005)*100)/100 4580 GS#=INT(GS#*100) 4590 IF GS#>TP# THEN YS=YS-1:GOTO 4620 4600 YS=YS+1 4610 GOTO 4570 4620 GS#=INT((PRS#*((1+IST#/100)^YS)+0.005)*100)/100 4630 GS#=INT(GS#*100) 4640 IF GS#>TP# THEN YS=YS-0.5:GOTO 4670 4650 YS=YS+0.5 4660 GOTO 4620 4670 GS#=INT((PRS#*((1+IST#/100)^YS)+0.005)*100)/100 4680 GS#=INT(GS#*100) 4690 IF GS#>BT# AND GS#<TP# THEN 4730 4700 IF GS#>TP# THEN 4730 4710 YS=YS+0.05 4720 GOTO 4670 4730 RETRN#=FT#-PRS# 4740 RETURN 4750 GOTO 40 4760 GOTO 6040 4770 GOTO 4780 4780 GOSUB 4790:GOSUB 4900:GOSUB 4890:GOSUB 460:GOTO 4780 4790 CLS:PRINT:COLOR 0,7:PRINT" F10 ";:COLOR 7,0:PRINT" To Menu":COLOR 11,0 4800 FOR I=1 TO 3 STEP 2:FOR J=20 TO 62:LOCATE I,J,0:PRINT "SOUND":NEXT:NEXT 4810 LOCATE 1,19:PRINT"VARPTR":LOCATE 1,63:PRINT"COLOR":LOCATE 3,63:PRINT"'":LOCATE 3,19:PRINT"CLS" 4820 LOCATE 2,19:PRINT"CALL"SPC(43)"CALL":COLOR 0,7 4830 LOCATE 2,27:PRINT" R E - O R D E R P O I N T ":COLOR 7,0 4840 COLOR 11,0:LOCATE 4,29:PRINT"Inventory Re-order Point":COLOR 7,0 4850 LOCATE 5,11:PRINT"KEY";:FOR I=1 TO 58:PRINT"THEN";:NEXT:PRINT"CLOSE" 4860 FOR J=6 TO 23:LOCATE J,70:PRINT"OPEN":NEXT:LOCATE ,70:PRINT"LOAD"; 4870 FOR J=69 TO 12 STEP-1:LOCATE 24,J:PRINT"THEN";:NEXT:LOCATE 24,11:PRINT"SCREEN"; 4880 FOR J=23 TO 6 STEP-1:LOCATE J,11:PRINT"OPEN":NEXT:RETURN 4890 COLOR 11,0:LOCATE 25,17,0:PRINT"***** Strike Any Key For Additional Analysis *****";:COLOR 7,0:RETURN 4900 LOCATE 7,18,0:PRINT"Units Used Daily" 4910 LOCATE 9,18:PRINT"Delivery Days Required" 4920 COLOR 11,0:LOCATE 7,18,1:PRINT"Units Used Daily "; 4930 GOSUB 6350 4940 UNITS#=VAL(ZA) 4950 IF UNITS#=0 THEN 4920 4960 LOCATE 9,18,1:PRINT"Delivery Days Required "; 4970 GOSUB 6350:TIME#=VAL(ZA):IF TIME#=0 THEN 4960 4980 LOCATE 7,18,0:PRINT USING"Units Used Daily ##########,##";UNITS# 4990 LOCATE 9,18:PRINT USING"Delivery Days Required ##########,##";TIME# 5000 LOCATE 11,13:PRINT"Safety Margin Minimum Quantity Re-order Point" 5010 MA#=0 5020 MN#=INT(UNITS#*TIME#+0.5) 5030 FOR I=13 TO 21 5040 RO#=INT(MA#*MN#+MN#+0.5) 5050 MA#=INT(MA#*100) 5060 LOCATE I,18:PRINT USING"##% ########,## ########,##";MA#;MN#;RO# 5070 IF I=13 THEN COLOR 7,0 5080 MA#=INT((MA#/100+0.055)*100)/100 5090 NEXT 5100 RETURN 5110 GOTO 6040 5120 GOTO 5130 5130 GOSUB 5140:GOSUB 5190:GOTO 5240 5140 CLS:PRINT:COLOR 0,7:PRINT" F10 ";:COLOR 7,0:PRINT" To Menu":COLOR 11,0 5150 FOR I=1 TO 3 STEP 2:FOR J=20 TO 62:LOCATE I,J,0:PRINT"SOUND":NEXT:NEXT 5160 LOCATE 1,19:PRINT"VARPTR":LOCATE 1,63:PRINT"COLOR":LOCATE 3,63:PRINT"'":LOCATE 3,19:PRINT"CLS" 5170 LOCATE 2,19:PRINT"CALL" SPC(43) "CALL":COLOR 0,7 5180 LOCATE 2,29:PRINT" S T O C K R A T I O S ":COLOR 7,0:RETURN 5190 COLOR 11,0:LOCATE 4,30,0:PRINT"Enter Known Information" 5200 LOCATE 5,11:PRINT"KEY";:FOR I=1 TO 58:PRINT"THEN";:NEXT:PRINT"CLOSE" 5210 FOR J=6 TO 22:LOCATE J,70:PRINT"OPEN":NEXT:LOCATE ,70:PRINT"LOAD"; 5220 FOR J=69 TO 12 STEP -1:LOCATE 23,J:PRINT"THEN";:NEXT:LOCATE 23,11:PRINT"SCREEN"; 5230 FOR J=22 TO 6 STEP -1:LOCATE J,11:PRINT"OPEN":NEXT:COLOR 7,0:RETURN 5240 LOCATE 6,16:PRINT"Average Inventory" 5250 LOCATE 7,16:PRINT"Current Assets" 5260 LOCATE 8,16:PRINT"Fixed and Long-Term Assets" 5270 LOCATE 9,33:PRINT"Total Assets" 5280 LOCATE 11,16:PRINT"Current Liabilities" 5290 LOCATE 12,16:PRINT"Long-Term Liabilities" 5300 LOCATE 13,28:PRINT"Total Liabilities" 5310 LOCATE 15,16:PRINT"Net Sales" 5320 LOCATE 16,16:PRINT"Cost of Goods Sold" 5330 LOCATE 17,16:PRINT"Total Operating Expenses" 5340 LOCATE 18,35:PRINT"Net Income" 5350 LOCATE 20,16:PRINT"Shareholders Equity" 5360 LOCATE 21,16:PRINT"Shares Outstanding" 5370 LOCATE 22,16:PRINT"Price Per Share 5380 CR#=0:QR#=0:IU#=0:ITR#=0:FAU#=0:TAU#=0:DTE#=0:OP#=0:PWR#=0:NPNS#=0:ROIA#=0:PER#=0:EPS#=0 5390 LOCATE 6,16,1:COLOR 11,0:PRINT"Average Inventory "; 5400 GOSUB 6030:I#=VAL(ZA) 5410 LOCATE 7,16,1:COLOR 11,0:PRINT"Current Assets "; 5420 GOSUB 6030:CA#=VAL(ZA) 5430 LOCATE 8,16,1:COLOR 11,0:PRINT"Fixed And Long Term Assets "; 5440 GOSUB 6030:NFA#=VAL(ZA) 5450 LOCATE 9,33,1:COLOR 11,0:PRINT"Total Assets "; 5460 TA#=CA#+NFA# 5470 PRINT USING"$$###########,.##";TA# 5480 LOCATE 11,16,1:COLOR 11,0:PRINT"Current Liabilities "; 5490 GOSUB 6030:CL#=VAL(ZA) 5500 LOCATE 12,16,1:COLOR 11,0:PRINT"Long Term Liabilities "; 5510 GOSUB 6030:LTD#=VAL(ZA) 5520 LOCATE 13,28,1:COLOR 11,0:PRINT"Total Liabilities "; 5530 TD#=CL#+LTD# 5540 PRINT USING"$$###########,.##";TD# 5550 LOCATE 15,16,1:COLOR 11,0:PRINT"Net Sales "; 5560 GOSUB 6030:S#=VAL(ZA) 5570 LOCATE 16,16,1:COLOR 11,0:PRINT"Cost of Goods Sold "; 5580 GOSUB 6030:COG#=VAL(ZA) 5590 LOCATE 17,16,1:COLOR 11,0:PRINT"Total Operating Expenses "; 5600 GOSUB 6030:OE#=VAL(ZA) 5610 LOCATE 18,35,1:COLOR 11,0:PRINT"Net Income "; 5620 NI#=S#-COG#-OE# 5630 PRINT USING"$$###########,.##";NI# 5640 LOCATE 20,16,1:COLOR 11,0:PRINT"Shareholders Equity "; 5650 GOSUB 6030:SE#=VAL(ZA) 5660 LOCATE 21,16,1:COLOR 11,0:PRINT"Shares Outstanding "; 5670 GOSUB 6350:SO#=VAL(ZA) 5680 LOCATE 22,16,1:COLOR 11,0:PRINT"Price Per Share "; 5690 GOSUB 6030:PPS#=VAL(ZA) 5700 LOCATE 24,18:PRINT"***** Strike Any Key To Calculate Ratios *****";:GOSUB 460:GOSUB 5140:COLOR 11,0:LOCATE 4,31,0:PRINT"These Are Your Ratios":GOSUB 5200 5710 IF CA#>0 AND CL#>0 THEN CR#=CA#/CL# 5720 TA#=CA#+NFA# 5730 IF CL#<>0 AND CA#<>I# THEN QR#=(CA#-I#)/CL# 5740 IF S#>0 AND I#>0 THEN IU#=S#/I# 5750 IF COG#>0 AND I#>0 THEN ITR#=COG#/I# 5760 IF S#>0 AND NFA#<>0 THEN FAU#=S#/NFA# 5770 IF S#>0 AND TA#>0 THEN TAU#=S#/TA# 5780 X1#=(TD#-CL#+SE#) 5790 IF X1#<0.01 THEN ELSE DTE#=(TD#-CL#)/X1# 5800 IF OE#>0 AND S#>0 THEN OP#=OE#/S# 5810 IF SE#<>0 THEN PWR#=NI#/SE# 5820 IF S#<>0 THEN NPNS#=NI#/S# 5830 IF TA#<>0 THEN ROIA#=NI#/TA# 5840 IF SO#<>0 THEN EPS#=NI#/SO# 5850 IF EPS#<>0 THEN PER#=PPS#/EPS# 5860 LOCATE 6,58,0:PRINT"Averages" 5870 LOCATE 8,15,0:PRINT USING"Current Ratio #####.##";CR#;:PRINT;" 2.5 x" 5880 LOCATE 9,15:PRINT USING"Quick Ratio #####.##";QR#;:PRINT;" 1.0 x" 5890 LOCATE 10,15:PRINT USING"Inventory Utilization #####.##";IU#;:PRINT;" 9 x" 5900 LOCATE 11,15:PRINT USING"Inventory Turnover Ratio #####.##";ITR#;:PRINT;" .17 x " 5910 LOCATE 12,15:PRINT USING"Fixed Asset Utilization #####.##";FAU#;:PRINT;" 3.0 x" 5920 LOCATE 13,15:PRINT USING"Total Asset Utilization #####.##";TAU#;:PRINT;" 1.8 x" 5930 LOCATE 14,15:PRINT USING"Debt to Equity Ratio ####.##";DTE#;:PRINT;" Variable" 5940 LOCATE 15,15:PRINT USING"Operating Ratio #####.##";OP#;:PRINT;" .60 x" 5950 LOCATE 16,15:PRINT USING"Profits-Worth Ratio ####.##";PWR#;:PRINT;" .18 x" 5960 LOCATE 17,15:PRINT USING"N.Profits-N.Sales Ratio ####.##";NPNS#;:PRINT;" .05 x" 5970 LOCATE 18,15:PRINT USING"ROI in Assets Ratio ####.##";ROIA#;:PRINT;" Variable" 5980 LOCATE 19,15:PRINT USING"Price Earnings Ratio #####.##";PER#;:PRINT;" 9.0 x" 5990 LOCATE 20,15:PRINT USING"Earnings Per Share $###.##";EPS#;:PRINT;" Variable" 6000 COLOR 11,0:LOCATE 24,16,0:PRINT"***** Strike Any Key To Try Another Analysis *****"; 6010 GOSUB 460:GOTO 5130 6020 COLOR 7,0:GOTO 40 6030 GOTO 6040 6040 LENGTH=12:DEFSTR Z:FIRSTONE=1:DEF SEG=&H40:POKE &H17,(PEEK(&H17) OR 96) 6050 IF DEC=1 THEN MASK$=" #############,.#":DEC=0:GOTO 6090 6060 IF DEC=2 THEN MASK$=" ############,.##":DEC=0:GOTO 6090 6070 IF DEC=3 THEN MASK$=" ###########,.##%":DEC=0:GOTO 6090 6080 MASK$="$$"+STRING$(11,"#")+",.##" 6090 ZH="000":XLIN=CSRLIN:XPOS=POS(0)-1:ZR=SPACE$(LENGTH):FLAG=0:PERIOD=0 6100 RSET ZR=ZH:LOCATE XLIN,XPOS,1:PRINT USING MASK$;VAL(ZR)/100;:LOCATE ,POS(0)-1 6110 DEF SEG:POKE 106,0:IF INKEY$<>"" THEN 6110 6120 ZI=INKEY$:IF ZI="" THEN 6120 6130 IF ZI="0" AND FIRSTONE THEN 6120 ELSE FIRSTONE=0 6140 IF ZI=CHR$(13) THEN ZA=SPACE$(LENGTH+2):ZH=STR$(VAL(ZH)/100):RSET ZA=ZH:RETURN 6150 IF ZI="." AND PERIOD=0 THEN PERIOD=1:GOTO 6120 6160 IF LEN(ZI)>1 THEN IF RIGHT$(ZI,1)=CHR$(75) THEN 6270 ELSE 6120 6170 IF ZI=CHR$(8) THEN 6270 6180 IF FLAG OR ZI<"0" OR ZI>"9" THEN 6120 6190 IF PERIOD=1 THEN MID$(ZH,LEN(ZH)-1,1)=ZI:GOTO 6230 6200 IF PERIOD=2 THEN MID$(ZH,LEN(ZH),1)=ZI:GOTO 6230 6210 IF LEN(ZH)>LENGTH-1 THEN 6120 6220 ZH=ZH+"0":MID$(ZH,LEN(ZH)-2)=ZI 6230 RSET ZR=ZH:LOCATE XLIN,XPOS,1:PRINT USING MASK$;VAL(ZR)/100;:LOCATE ,POS(0)-1 6240 IF PERIOD=2 THEN FLAG=1 6250 IF PERIOD=1 THEN PERIOD=2 6260 GOTO 6120 6270 IF LEN(ZH)<3 THEN ZH="0"+ZH 6280 IF LEN(ZH)<3 THEN 6120 6290 IF PERIOD=1 THEN PERIOD=0:MID$(ZH,LEN(ZH)-1,1)="0":GOTO 6330 6300 IF PERIOD=2 AND FLAG THEN FLAG=0:PERIOD=1:MID$(ZH,LEN(ZH),1)="0":GOTO 6330 6310 IF PERIOD=2 THEN PERIOD=0:MID$(ZH,LEN(ZH)-1)="0":GOTO 6330 6320 MID$(ZH,LEN(ZH)-2,1)="0":ZH=LEFT$(ZH,LEN(ZH)-1) 6330 LOCATE XLIN,XPOS:PRINT SPC(LENGTH); 6340 LOCATE XLIN,XPOS,1:RSET ZR=ZH:PRINT USING MASK$;VAL(ZR)/100;:LOCATE ,POS(0)-1:GOTO 6120 6350 DEFSTR Z:MASK$="############,### ":ZA=SPACE$(10) 6360 XLIN=CSRLIN:XPOS=POS(0):PRINT USING MASK$;0; 6370 ZH="":DEF SEG:POKE 106,0:IF INKEY$<>"" THEN 6370 6380 ZI=INKEY$:IF ZI="" THEN 6380 6390 IF ZI=CHR$(13) THEN LSET ZA=ZH:RETURN 6400 IF ZI=CHR$(8) OR RIGHT$(ZI,1)=CHR$(75) THEN 6450 6410 IF LEN(ZI)>1 THEN 6370 6420 IF ZI<"0" OR ZI>"9" THEN 6380 6430 IF LEN(ZH)>9 THEN 6380 6440 ZH=ZH+ZI:RSET ZA=ZH:LOCATE XLIN,XPOS:PRINT USING MASK$;VAL(ZA);:GOTO 6380 6450 IF LEN(ZH)<1 THEN 6380 6460 ZH=LEFT$(ZH,LEN(ZH)-1):RSET ZA=ZH:LOCATE XLIN,XPOS:PRINT USING MASK$;VAL(ZA);:GOTO 6380 6470 GOTO 40